<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>fileTypes</key>
	<array>
		<string>fx</string>
		<string>fxi</string>
	</array>
	<key>keyEquivalent</key>
	<string>^~S</string>
	<key>name</key>
	<string>Ficus</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>include</key>
			<string>#comments</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(as|class|from|import|interface|ref|val|var|fun|operator|type|exception|int|int8|uint8|int16|uint16|int32|uint32|int64|uint64|half|float|double|bool|list|string|char|vector)\b</string>
			<key>name</key>
			<string>keyword.other.fx</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(break|catch|continue|if|do|else|fold|for|match|throw|try|when|while)\b</string>
			<key>name</key>
			<string>keyword.control.fx</string>
		</dict>
		<dict>
			<key>match</key>
			<string>(@ccode|@data|@text|@inline|@nothrow|@parallel|@private|@pure|@unzip|@IF|@IFDEF|@IFNDEF|@ELIF|@ENDIF|@DEFINE|@UNDEF|@ERROR|@WARNING)\b</string>
			<key>name</key>
			<string>keyword.operator.fx</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>\b(\{)\b</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.fx</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.other.fx</string>
				</dict>
			</dict>
			<key>end</key>
			<string>\b(\})\b</string>
			<key>name</key>
			<string>meta.braces.fx</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(fun)\s+([^{=]+)</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.control.fun.fx</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.fx</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(operator)\s*([^{=]+)</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.control.fun.fx</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.fx</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>begin</key>
			<string>"</string>
			<key>beginCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.begin.fx</string>
				</dict>
			</dict>
			<key>end</key>
			<string>"</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.end.fx</string>
				</dict>
			</dict>
			<key>name</key>
			<string>string.quoted.double.fx</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>\\.</string>
					<key>name</key>
					<string>constant.character.escape.fx</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>match</key>
			<string>\b\d*\.?\d+\b</string>
			<key>name</key>
			<string>constant.numeric.fx</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(true|false|inf|nan|null|None|Some)\b</string>
			<key>name</key>
			<string>constant.language.fx</string>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>comments</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>/\*</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.begin.fx</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\*/</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.end.fx</string>
						</dict>
					</dict>
					<key>name</key>
					<string>comment.block.fx</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#comments</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>//</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.fx</string>
						</dict>
					</dict>
					<key>end</key>
					<string>$\n?</string>
					<key>name</key>
					<string>comment.line.double-slash.fx</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>(?&gt;\\\s*\n)</string>
							<key>name</key>
							<string>punctuation.separator.continuation.fx</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>spec</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.fx</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>entity.name.type.abbrev.fx</string>
						</dict>
					</dict>
					<key>match</key>
					<string>\b(exception|type)\s+([a-zA-Z][a-zA-Z0-9'_]*)</string>
					<key>name</key>
					<string>meta.spec.fx.type</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.fx</string>
						</dict>
					</dict>
					<key>match</key>
					<string>\b(val)\s*([^:]+)\s*:</string>
					<key>name</key>
					<string>meta.spec.fx.val</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>\b(class|interface)\s*(\w+)\s*:</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.fx</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>entity.name.type.module.fx</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?=val|var|type|class|interface|import|fun|operator)</string>
					<key>name</key>
					<string>meta.spec.fx.class</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#comments</string>
				</dict>
			</array>
		</dict>
	</dict>

	<key>scopeName</key>
	<string>source.fx</string>
	<key>uuid</key>
	<string>FB92750E-819D-4550-8C6B-277E0200757C</string>
</dict>
</plist>
